<template>
	<view class="content">
		<mix-tree :list="list" :params="treeParams" @treeItemClick="treeItemClick"></mix-tree>
	</view>
</template>

<script>
	import mixTree from '@/components/mix-tree/mix-tree';

	export default {
		components: {
			mixTree
		},
		data() {
			return {
				list: [],
				treeParams: {
					defaultIcon: '/static/i2.png', // 默认图标
					currentIcon: '/static/i1.png', // 展开图标
					lastIcon: '/static/i3.png', //最后一级图标
					border: false // 边框， 默认不显示
				}
			}
		},
		onLoad() {
			this.getlist()
		},
		methods: {
			getlist() {
				var list = uni.getStorageSync('dic').faultClassification
				var arr = []
				list.forEach(item => {
					if (!item.hasOwnProperty('parent_id')) {
						arr.push(item)
					}
				})
				arr.forEach(item => {
					this.arr2tree(list, item)
				})
				this.list = list
			},
			arr2tree(arr, father) {
				// 遍历数组，找到当前father的所有子节点
				for (var i = 0; i < arr.length; i++) {
					if (arr[i].parent_id == father.id) {
						// 这里是有子节点才需要有children属性（也就是说有children里绝不会为空list）
						if (!father.children) {
							father.children = [];
						}
						var son = arr[i];
						father.children.push(son);
						arr.splice(i, 1); // 删除该节点，当list为空的时候就终止递归
						i--; // 由于删除了i节点，所以下次访问的元素下标应该还是i
					}
				}
				// 再对每一个子节点进行如上操作
				if (father.children) { // 需要先判断有没有子节点
					var childs = father.children;
					for (var i = 0; i < childs.length; i++) {
						this.arr2tree(arr, childs[i]); // 调用递归函数
					}
					// 用于按名称进行排序，如果不强调顺序可以去掉
					father.children.sort(function(a, b) {
						return a.name > b.name;
					})
				}
			},

			treeItemClick(item) {

				var list = uni.getStorageSync('dic').faultClassification
				var parent_id = item.parentId
				parent_id.push(item.id)
				var arr = []
				parent_id.forEach(item => {
					list.forEach(item2 => {
						if (item == item2.id) {
							arr.push(item2)
						}
					})
				})

				var name = [],
					value = []
				arr.forEach(item => {
					name.push(item.name)
					value.push(item.id)
				})

				
				uni.$emit('chooseType', {
					name: name.join('/'),
					value: value.join(',')
				})
				let pages = getCurrentPages(); //获取所有页面栈实例列表
				let nowPage = pages[pages.length - 1]; //当前页页面实例
				let prevPage = pages[pages.length - 2]; //上一页页面实例
				prevPage.$vm.faultType = {
					name: name.join('/'),
					value: value.join(',')
				}
				uni.navigateBack({

				})
			}
		}
	}
</script>

<style>

</style>
